class SRVetFieldMedic extends SRVeterancyTypes
	abstract;

static function int GetPerkProgressInt( ClientPerkRepLink StatOther, out int FinalInt, byte CurLevel, byte ReqNum )
{
	switch( CurLevel )
	{
	case 0:
		if( ReqNum == 0 )
			FinalInt = 0;
		else if( ReqNum==1 )
			FinalInt = 0;
		else if( ReqNum==2 )
			FinalInt = 0;
		break;
	case 1:
		if( ReqNum == 0 )
			FinalInt = 0;
		else if( ReqNum==1 )
			FinalInt = 0;
		else if( ReqNum==2 )
			FinalInt = 0;
		break;
	case 2:
		if( ReqNum == 0 )
			FinalInt = 750;
		else if( ReqNum==1 )
			FinalInt = 200;
		else if( ReqNum==2 )
			FinalInt = 0;
		break;
	case 3:
		if( ReqNum == 0 )
			FinalInt = 4000;
		else if( ReqNum==1 )
			FinalInt = 500;
		else if( ReqNum==2 )
			FinalInt = 0;
		break;
	case 4:
		if( ReqNum == 0 )
			FinalInt = 12000;
		else if( ReqNum==1 )
			FinalInt = 1200;
		else if( ReqNum==2 )
			FinalInt = 0;
		break;
	case 5:
		if( ReqNum == 0 )
			FinalInt = 25000;
		else if( ReqNum==1 )
			FinalInt = 2500;
		else if( ReqNum==2 )
			FinalInt = 0;
		break;
	case 6:
		if( ReqNum == 0 )
			FinalInt = 100000;
		else if( ReqNum==1 )
			FinalInt = 5000;
		else if( ReqNum==2 )
			FinalInt = 0;
		break;
	case 7:
		if( ReqNum == 0 )
			FinalInt = 175000;
		else if( ReqNum==1 )
			FinalInt = 10000;
		else if( ReqNum==2 )
			FinalInt = 0;
		break;
	case 8:
		if( ReqNum == 0 )
			FinalInt = 250000;
		else if( ReqNum==1 )
			FinalInt = 15000;
		else if( ReqNum==2 )
			FinalInt = 0;
		break;
	case 9:
		if( ReqNum == 0 )
			FinalInt = 325000;
		else if( ReqNum==1 )
			FinalInt = 20000;
		else if( ReqNum==2 )
			FinalInt = 0;
		break;
	case 10:
		if( ReqNum == 0 )
			FinalInt = 475000;
		else if( ReqNum==1 )
			FinalInt = 25000;
		else if( ReqNum==2 )
			FinalInt = 0;
		break;
	case 11:
		if( ReqNum == 0 )
			FinalInt = 1000000;
		else if( ReqNum==1 )
			FinalInt = 40000;
		else if( ReqNum==2 )
			FinalInt = 100;
		break;
	case 12:
		if( ReqNum == 0 )
			FinalInt = 1750000;
		else if( ReqNum==1 )
			FinalInt = 100000;
		else if( ReqNum==2 )
			FinalInt = 300;
		break;
	case 13:
		if( ReqNum == 0 )
			FinalInt = 2500000;
		else if( ReqNum==1 )
			FinalInt = 200000;
		else if( ReqNum==2 )
			FinalInt = 1000;
		break;
	}
	if( ReqNum==0 )
		return Min(StatOther.RDamageHealedStat,FinalInt);
	else if( ReqNum==1 )
		return Min(StatOther.RMassHealPoints,FinalInt);
	else if( ReqNum==2 )
		return Min(StatOther.RCalmedPounds,FinalInt);
}

//если 1-2 уровень, то вручаем гранаты, которые не взрывают дверь
static function class<Grenade> GetNadeType(KFPlayerReplicationInfo KFPRI)
{
	if ( KFPRI.ClientVeteranSkillLevel >= 0 )
		return class'NadeCureW';
	return super.GetNadeType(KFPRI);
}

static function float GetSyringeChargeRate(KFPlayerReplicationInfo KFPRI) // Скорость перезарядки шприца
{
	if ( KFPRI.ClientVeteranSkillLevel == 0 )
		return 1.10;
	else if ( KFPRI.ClientVeteranSkillLevel <= 4 )
		return 1.00 + (0.25 * float(KFPRI.ClientVeteranSkillLevel));
	else if ( KFPRI.ClientVeteranSkillLevel == 5 )
		return 2.50; // Recharges 150% faster
	else if ( KFPRI.ClientVeteranSkillLevel == 7 )
		return 3.20; // Recharges 220% faster
	else if ( KFPRI.ClientVeteranSkillLevel == 8 )
		return 3.40; // Recharges 240% faster
	else if ( KFPRI.ClientVeteranSkillLevel == 9 )
		return 3.60; // Recharges 260% faster
	else if ( KFPRI.ClientVeteranSkillLevel == 10 )
		return 4.00; // Recharges 300% faster
	else if ( KFPRI.ClientVeteranSkillLevel == 11 )
		return 4.20; // Recharges 320% faster
	else if ( KFPRI.ClientVeteranSkillLevel >= 12 )
		return 4.40; // Recharges 340% faster
	return 3.00; // Level 6 - Recharges 200% faster
}

static function float GetHealPotency(KFPlayerReplicationInfo KFPRI) // Эффективность инъекции шприца
{
	if ( KFPRI.ClientVeteranSkillLevel == 0 )
		return 1.10;
	else if ( KFPRI.ClientVeteranSkillLevel <= 2 )
		return 1.25;
	else if ( KFPRI.ClientVeteranSkillLevel == 3 )
		return 1.5;
	else if ( KFPRI.ClientVeteranSkillLevel == 4 )
		return 1.5;
	else if ( KFPRI.ClientVeteranSkillLevel == 5 )
		return 1.5;
	else if ( KFPRI.ClientVeteranSkillLevel == 7 )
		return 1.75;
	else if ( KFPRI.ClientVeteranSkillLevel == 8 )
		return 1.80;
	else if ( KFPRI.ClientVeteranSkillLevel == 9 )
		return 1.85;
	else if ( KFPRI.ClientVeteranSkillLevel == 10 )
		return 1.9;
	else if ( KFPRI.ClientVeteranSkillLevel == 11 )
		return 2.0;
	else if ( KFPRI.ClientVeteranSkillLevel >= 12 )
		return 2.2;
	return 1.75;  // Heals for 75% more
}

static function int AddDamage(KFPlayerReplicationInfo KFPRI, KFMonster Injured, KFPawn DamageTaker, int InDamage, class<DamageType> DmgType) // Ослабление медика в ближнем бою
{
	if (class<KFWeaponDamageType>(DmgType) != none && class<KFWeaponDamageType>(DmgType).default.bIsMeleeDamage)
		return (InDamage * 0.6); // Уменьшение мощности удара в ближнем бою на 40%
	else
		return InDamage;
}

static function float GetMovementSpeedModifierEx(KFPlayerReplicationInfo KFPRI, KFWeapon PlayersWeapon, int PlayersShield, int PlayersHealth,  bool bGlobalVelocityMultiplier)
{
	if (!bGlobalVelocityMultiplier)
		return 1.0;
	
	if(MG34W(PlayersWeapon) != none) return 0.85;
	
	if (( 	Knife(PlayersWeapon) != none || Syringe(PlayersWeapon) != none ||
			SyringeW(PlayersWeapon) != none ||
			LethalInjectionW(PlayersWeapon) != none || MP7MMedicGun(PlayersWeapon) != none ||
			MP7MW(PlayersWeapon) != none || KnifeW(PlayersWeapon) != none ||
			MP7M2W(PlayersWeapon) != none || 
			M7A3MW(PlayersWeapon) != none || M7A3MMedicGun(PlayersWeapon) != none ||
			AcidGunW(PlayersWeapon) != none || M56W(PlayersWeapon) != none ||
			AdrenalineSyringeW(PlayersWeapon) != none ||
			MP5MW(PlayersWeapon) != none
			|| PlayersWeapon.IsA('KrissMMedicGun')
		 ) 
		 && KFPRI.ClientVeteranSkillLevel > 0)
	{
		// Medic movement speed reduced in Balance Round 2(limited to Suicidal and HoE in Round 7)
		if ( KFPRI.ClientVeteranSkillLevel <= 1 )
		{
			return 1.0;
		}
		if ( KFPRI.ClientVeteranSkillLevel <= 6 )
			return 1.05 + (0.05 * float(KFPRI.ClientVeteranSkillLevel - 3)); // Moves up to 20% faster
		else if ( KFPRI.ClientVeteranSkillLevel == 7 )
			return 1.25;
		else if ( KFPRI.ClientVeteranSkillLevel == 8 )
			return 1.25;
		else if ( KFPRI.ClientVeteranSkillLevel == 9 )
			return 1.25;
		else if ( KFPRI.ClientVeteranSkillLevel == 10 )
			return 1.45;
		else if ( KFPRI.ClientVeteranSkillLevel == 11 )
			return 1.50;
		else if ( KFPRI.ClientVeteranSkillLevel >= 12 )
			return 1.55;
		return 1.05 + (0.05 * float(KFPRI.ClientVeteranSkillLevel - 2)); // Moves up to 25% faster
	}
	else if (KFMeleeGun(PlayersWeapon) != none)
		return 0.7; /* 30% speed decrease with Machete/Axe/Katana/Chainsaw */
	return 0.85; /* 15% speed decrease with all other weapons */
}

/*
static function float GetMovementSpeedModifier(KFPlayerReplicationInfo KFPRI) // Скорость передвижения
{
        // Medic movement speed reduced in Balance Round 2(limited to Suicidal and HoE in Round 7)
	if ( KFPRI.Level.Game.GameDifficulty >= 5.0 )
	{
		if ( KFPRI.ClientVeteranSkillLevel <= 2 )
		{
			return 1.0;
		}
                else if (KFPRI.ClientVeteranSkillLevel <= 6)
                  return 1.05 + (0.05 * float(KFPRI.ClientVeteranSkillLevel - 3)); // Moves up to 20% faster
	}
        if ( KFPRI.ClientVeteranSkillLevel <= 1 )
	{
		return 1.0;
	}
	if ( KFPRI.ClientVeteranSkillLevel <= 6 )
		return 1.05 + (0.05 * float(KFPRI.ClientVeteranSkillLevel - 3)); // Moves up to 20% faster
	else if ( KFPRI.ClientVeteranSkillLevel == 7 )
		return 1.25;
	else if ( KFPRI.ClientVeteranSkillLevel == 8 )
		return 1.25;
	else if ( KFPRI.ClientVeteranSkillLevel == 9 )
		return 1.25;
	else if ( KFPRI.ClientVeteranSkillLevel == 10 )
		return 1.30;
	else if ( KFPRI.ClientVeteranSkillLevel == 11 )
		return 1.35;
	else if ( KFPRI.ClientVeteranSkillLevel >= 12 )
		return 1.40;
	return 1.05 + (0.05 * float(KFPRI.ClientVeteranSkillLevel - 2)); // Moves up to 25% faster
}
*/

static function int ReduceDamage(KFPlayerReplicationInfo KFPRI, KFPawn Injured, KFMonster DamageTaker, int InDamage, class<DamageType> DmgType) // Сопротивление желчи Блота
{
/*
        if (KFWeapon(Injured.Weapon) != none)
         {
           if ((KFWeapon(Injured.Weapon) == class 'Machete' || KFWeapon(Injured.Weapon) == class 'Axe' || KFWeapon(Injured.Weapon) == class 'Chainsaw' || KFWeapon(Injured.Weapon) == class 'Katana') && Injured.ShieldStrength > 0)
            {
              if (InDamage <= Injured.ShieldStrength)
                return float(InDamage)*(2.00 - GetBodyArmorDamageModifier(KFPRI));
              else
                return ((Injured.ShieldStrength)*(2.00 - GetBodyArmorDamageModifier(KFPRI)) + (float(InDamage) - Injured.ShieldStrength));
              
            }
         }
*/
	if ( DmgType == class'DamTypeVomit' )
	{
		if ( KFPRI.ClientVeteranSkillLevel == 0 )
			return float(InDamage) * 0.90;
		else if ( KFPRI.ClientVeteranSkillLevel == 1 )
			return float(InDamage) * 0.75;
		else if ( KFPRI.ClientVeteranSkillLevel <= 4 )
			return float(InDamage) * 0.50;
		else if ( KFPRI.ClientVeteranSkillLevel == 7 )
			return float(InDamage) * 0.25;
		else if ( KFPRI.ClientVeteranSkillLevel == 8 )
			return float(InDamage) * 0.25;
		else if ( KFPRI.ClientVeteranSkillLevel == 9 )
			return float(InDamage) * 0.25;
		else if ( KFPRI.ClientVeteranSkillLevel >= 10 )
			return float(InDamage) * 0.25;
		return float(InDamage) * 0.25; // 75% decrease in damage from Bloat's Bile
	}
	if (Injured.ShieldStrength>0 && DmgType.Name=='DamTypeSelfGuidedRPG')
	{
		if(KFPRI.ClientVeteranSkillLevel < 10) return InDamage * 1.1;
		if(KFPRI.ClientVeteranSkillLevel == 10) return InDamage * 1.3;
		if(KFPRI.ClientVeteranSkillLevel == 11) return InDamage * 1.5;
		if(KFPRI.ClientVeteranSkillLevel >= 12) return InDamage * 2.1;
	}
	return InDamage;
}

static function float GetMagCapacityMod(KFPlayerReplicationInfo KFPRI, KFWeapon Other) // Вместимость магазина МР7 Медик Ган
{
/* 	if (	M56W(Other) != none || MG34W(Other) != none || ColtW(Other) != none ||
			SBoomStickW(Other) != none || M32W(Other) != none || BoomStick(Other) != none || 
			BoomStickW(Other) != none || M99W(Other) != none || LAWW(Other) != none ||
			CrossBowW(Other) != none || SCrossBowW(Other) != none ||
			M79W(Other) != none || M79FlameW(Other) != none ||
			Dual44MagnumW(Other) !=none || Magnum44WPistol(Other) != none || 
			HuskGunW(Other) != none || HuskGun(Other) != none ||
			M4203W(Other) != none || 
			M32ClusterBombW(Other) != none || RPGW(Other) != none ||
			HuskGunClusterW(Other) != none || PKM(Other) != none
		)
	{
		return 1.00;
	} */
	if ( (	MP7MMedicGun(Other) != none || MP7M2W(Other) != none || 
			M7A3MW(Other) != none || MP7MW(Other) != none ||
			M7A3MMedicGun(Other) != none ||
			AcidGunW(Other) != none || MP5MW(Other) != none
			|| Other.IsA('KrissMMedicGun')
		  ) && KFPRI.ClientVeteranSkillLevel > 0 )
	{
	if ( KFPRI.ClientVeteranSkillLevel == 6 )
			return 2.00;
		else if ( KFPRI.ClientVeteranSkillLevel == 7 )
			return 2.50;
		else if ( KFPRI.ClientVeteranSkillLevel == 8 )
			return 3.00;
		else if ( KFPRI.ClientVeteranSkillLevel == 9 )
			return 3.50;
		else if ( KFPRI.ClientVeteranSkillLevel == 10 )
			return 4.00;
		else if ( KFPRI.ClientVeteranSkillLevel == 11 )
			return 4.50;
		else if ( KFPRI.ClientVeteranSkillLevel >= 12 )
			return 5.00;
		return 1.0 + (0.20 * FMin(KFPRI.ClientVeteranSkillLevel, 5.0)); // 100% increase in MP7 Medic weapon ammo carry
	}
	return 1.0;

/* 	else
	{
		if ( KFPRI.ClientVeteranSkillLevel == 0 )
			return 1.0;
		else if ( KFPRI.ClientVeteranSkillLevel == 1 )
			return 1.05;
		else if ( KFPRI.ClientVeteranSkillLevel == 2 )
			return 1.10;
		else if ( KFPRI.ClientVeteranSkillLevel == 3 )
			return 1.15;
		else if ( KFPRI.ClientVeteranSkillLevel == 4 )
			return 1.20;
		else if ( KFPRI.ClientVeteranSkillLevel == 5 )
			return 1.25;
		else if ( KFPRI.ClientVeteranSkillLevel == 6 )
			return 1.30;
		else if ( KFPRI.ClientVeteranSkillLevel == 7 )
			return 1.40;
		else if ( KFPRI.ClientVeteranSkillLevel == 8 )
			return 1.50;
		else if ( KFPRI.ClientVeteranSkillLevel == 9 )
			return 1.60;
		else if ( KFPRI.ClientVeteranSkillLevel == 10 )
			return 1.70;
		else if ( KFPRI.ClientVeteranSkillLevel == 11 )
			return 1.80;
		else if ( KFPRI.ClientVeteranSkillLevel >= 12 )
			return 1.90;
		// return 1.0;
    } */
}

static function float GetAmmoPickupMod(KFPlayerReplicationInfo KFPRI, KFAmmunition Other) // Дополнительное количество боеприпасов для МР7 Медик Ган
{
	if ( (	MP7MAmmo(Other) != none || MP7M2WAmmo(Other) != none || 
			M7A3MAmmo(Other) != none ||
			M7A3MWAmmo(Other) != none || MP7MWAmmo(Other) != none ||
			M56WAmmo(Other) != none || AcidGunWAmmo(Other) != none ||
			MP5MWAmmo(Other) != none
			|| Other.IsA('KrissMAmmo')
			) && KFPRI.ClientVeteranSkillLevel > 0 )
	{
	if ( KFPRI.ClientVeteranSkillLevel == 6 )
			return 2.00;
		else if ( KFPRI.ClientVeteranSkillLevel == 7 )
			return 2.25;	
		else if ( KFPRI.ClientVeteranSkillLevel == 8 )
			return 2.50;
		else if ( KFPRI.ClientVeteranSkillLevel == 9 )
			return 2.75;
		else if ( KFPRI.ClientVeteranSkillLevel == 10 )
			return 3.00;
		else if ( KFPRI.ClientVeteranSkillLevel == 11 )
			return 3.25;
		else if ( KFPRI.ClientVeteranSkillLevel >= 12 )
			return 3.50;
		return 1.0 + (0.20 * FMin(float(KFPRI.ClientVeteranSkillLevel), 5.0)); // 100% increase in MP7 Medic weapon ammo carry
	}
	else // Дополнительное количество для остального оружия
	{
	if ( KFPRI.ClientVeteranSkillLevel == 0 )
			return 1.0;
		else if ( KFPRI.ClientVeteranSkillLevel == 1 )
			return 1.05;
		else if ( KFPRI.ClientVeteranSkillLevel == 2 )
			return 1.10;
		else if ( KFPRI.ClientVeteranSkillLevel == 3 )
			return 1.15;
		else if ( KFPRI.ClientVeteranSkillLevel == 4 )
			return 1.20;
		else if ( KFPRI.ClientVeteranSkillLevel == 5 )
			return 1.25;
		else if ( KFPRI.ClientVeteranSkillLevel == 6 )
			return 1.30;
		else if ( KFPRI.ClientVeteranSkillLevel == 7 )
			return 1.40;
		else if ( KFPRI.ClientVeteranSkillLevel == 8 )
			return 1.50;
		else if ( KFPRI.ClientVeteranSkillLevel == 9 )
			return 1.60;
		else if ( KFPRI.ClientVeteranSkillLevel == 10 )
			return 1.70;
		else if ( KFPRI.ClientVeteranSkillLevel == 11 )
			return 1.80;
		else if ( KFPRI.ClientVeteranSkillLevel >= 12 )
			return 2.00;
		// return 1.0;
    }
}

///////////////////Взял из Подрывника///////////////////
static function float AddExtraAmmoFor(KFPlayerReplicationInfo KFPRI, Class<Ammunition> AmmoType) // Количество боеприпасов для МР7 Медик Ган 2-й вариант
{
	if (AmmoType == class'MP7MAmmo' || AmmoType == class'MP7M2WAmmo' || 
		AmmoType == class'MP7MWAmmo' || 
		AmmoType == class'M7A3MAmmo' || AmmoType == class'M7A3MWAmmo' || 
		AmmoType == class'M56WAmmo' ||
		AmmoType == class'AcidGunWAmmo' || AmmoType == class'MP5MWAmmo'
		|| AmmoType.Name == 'KrissMAmmo'
		)
	{
		if ( KFPRI.ClientVeteranSkillLevel == 7 )
			return 1.25;
		else if ( KFPRI.ClientVeteranSkillLevel == 8 )
			return 1.50;
		else if ( KFPRI.ClientVeteranSkillLevel == 9 )
			return 1.75;
		else if ( KFPRI.ClientVeteranSkillLevel == 10 )
			return 2.00;
		else if ( KFPRI.ClientVeteranSkillLevel == 11 )
			return 2.25;
		else if ( KFPRI.ClientVeteranSkillLevel >= 12 )
			return 2.50;
		else return 1.0 + (0.20 * float(KFPRI.ClientVeteranSkillLevel)); //
	}
	else if(AmmoType == class'PKMAmmo')
	{
		return 1.00;
	}
	else if ( AmmoType == class'FragAmmo' )
	{
		if ( KFPRI.ClientVeteranSkillLevel == 7 )
			return 1.20;
		else if ( KFPRI.ClientVeteranSkillLevel == 8 )
			return 1.40;
		else if ( KFPRI.ClientVeteranSkillLevel == 9 )
			return 1.60;
		else if ( KFPRI.ClientVeteranSkillLevel == 10 )
			return 1.80;
		else if ( KFPRI.ClientVeteranSkillLevel == 11 )
			return 2.20;
		else if ( KFPRI.ClientVeteranSkillLevel >= 12 )
			return 3.00;
		else return 1.00;
	}

	return 1.00;
}
////////////////////////////////////////////////////////

// Change the cost of particular items
static function float GetCostScaling(KFPlayerReplicationInfo KFPRI, class<Pickup> Item) // Скидки на броню и MP7 Medic
{
	if ( Item == class'Vest' )
	{
		if ( KFPRI.ClientVeteranSkillLevel >= 7 )
			return 0.30;
		return 0.9 - (0.06 * float(KFPRI.ClientVeteranSkillLevel));  // Up to 70% discount on Body Armor
	}
	else if ( 	Item == class'MP7MPickup' || Item == class'MP7MWPickup' ||
				Item == class'M7A3MWPickup' || Item == class'MP5MWPickup' ||
				Item == class'M7A3MPickup'
				|| Item.Name == 'KrissMPickup'
			)
	{
		if ( KFPRI.ClientVeteranSkillLevel >= 0 ) // Up to 70% discount on Medic Gun
			return 0.30;
		return 0.30;
	}
	return 1.0;
}

static function float GetBodyArmorDamageModifierEx(KFPlayerReplicationInfo KFPRI, KFWeapon PlayersWeapon, int PlayersHealth)
{
    if ( ( 	Knife(PlayersWeapon) != none || Syringe(PlayersWeapon) != none || 
			SyringeW(PlayersWeapon) != none || KnifeW(PlayersWeapon) != none ||
			LethalInjectionW(PlayersWeapon) != none || MP7MMedicGun(PlayersWeapon) != none || 
			MP7M2W(PlayersWeapon) != none || M7A3MW(PlayersWeapon) != none || 
			M7A3MMedicGun(PlayersWeapon) != none || 
			AcidGunW(PlayersWeapon) != none || M56W(PlayersWeapon) != none ||
			MP7MW(PlayersWeapon) != none || AdrenalineSyringeW(PlayersWeapon) != none ||
			MP5MW(PlayersWeapon) != none
			|| PlayersWeapon.IsA('KrissMMedicGun')
		 ) && KFPRI.ClientVeteranSkillLevel > 0 )
	{
		if ( KFPRI.ClientVeteranSkillLevel <= 5 )
			return 1.0 - (0.10 * float(KFPRI.ClientVeteranSkillLevel)); // Up to 50% improvement of Body Armor
		if ( KFPRI.ClientVeteranSkillLevel == 6 )
			return 0.45; // Level 6 - 75% Better Body Armor
		if ( KFPRI.ClientVeteranSkillLevel == 7 )
			return 0.40;
		if ( KFPRI.ClientVeteranSkillLevel == 8 )
			return 0.40;
		if ( KFPRI.ClientVeteranSkillLevel == 9 )
			return 0.40;
		if ( KFPRI.ClientVeteranSkillLevel == 10 )
			return 0.35;
		if ( KFPRI.ClientVeteranSkillLevel == 11 )
			return 0.25;
		if ( KFPRI.ClientVeteranSkillLevel >= 12 )
		{
			//Log("GetBodyArmorDamageModifierEx");
			return 0.10;
		}
		return 0.45; // Level 6 - 75% Better Body Armor
	}
	else if (SRKFMeleeGun(PlayersWeapon) != none)
	{
		//Log(SRKFMeleeGun(PlayersWeapon)@KFMeleeGun(PlayersWeapon));
		return 1.5;
	}
	return 1.3;
}

/*
// Reduce damage when wearing Armor
static function float GetBodyArmorDamageModifier(KFPlayerReplicationInfo KFPRI) // Эффективность защиты брони
{
	if ( KFPRI.ClientVeteranSkillLevel <= 5 )
		return 1.0 - (0.10 * float(KFPRI.ClientVeteranSkillLevel)); // Up to 50% improvement of Body Armor
	if ( KFPRI.ClientVeteranSkillLevel == 6 )
		return 0.25; // Level 6 - 75% Better Body Armor
	if ( KFPRI.ClientVeteranSkillLevel == 7 )
		return 0.25;
	if ( KFPRI.ClientVeteranSkillLevel == 8 )
		return 0.20;
	if ( KFPRI.ClientVeteranSkillLevel == 9 )
		return 0.15;
	if ( KFPRI.ClientVeteranSkillLevel == 10 )
		return 0.15;
	if ( KFPRI.ClientVeteranSkillLevel == 11 )
		return 0.10;
	if ( KFPRI.ClientVeteranSkillLevel >= 12 )
		return 0.05;
	return 0.25; // Level 6 - 75% Better Body Armor
}
*/

// Give Extra Items as Default
static function AddDefaultInventory(KFPlayerReplicationInfo KFPRI, Pawn P) // Возрождение с броней и Медикганом
{
	// If Level 5 or Higher, give them Body Armor
	if ( KFPRI.ClientVeteranSkillLevel >= 5 )
		P.ShieldStrength = 100;
	// If Level 6, 7, 8, 9 give them a Medic Gun
	if ( KFPRI.ClientVeteranSkillLevel == 6 )
		KFHumanPawn(P).CreateInventoryVeterancy("PerksSimHostOrg.MP7MW", GetCostScaling(KFPRI, class'MP7MWPickup'));
	if ( KFPRI.ClientVeteranSkillLevel == 7 )
		KFHumanPawn(P).CreateInventoryVeterancy("PerksSimHostOrg.MP7MW", GetCostScaling(KFPRI, class'MP7MWPickup'));
	if ( KFPRI.ClientVeteranSkillLevel == 8 )
		KFHumanPawn(P).CreateInventoryVeterancy("PerksSimHostOrg.MP7MW", GetCostScaling(KFPRI, class'MP7MWPickup'));
	if ( KFPRI.ClientVeteranSkillLevel == 9 )
	{
		KFHumanPawn(P).CreateInventoryVeterancy("PerksSimHostOrg.MP7MW", GetCostScaling(KFPRI, class'MP7MWPickup'));
	}
	if ( KFPRI.ClientVeteranSkillLevel == 10 )
	{
		KFHumanPawn(P).CreateInventoryVeterancy("PerksSimHostOrg.MP7MW", GetCostScaling(KFPRI, class'MP7MWPickup'));
		KFHumanPawn(P).CreateInventoryVeterancy("PerksSimHostOrg.M7A3MW", GetCostScaling(KFPRI, class'M7A3MWPickup'));
		KFHumanPawn(P).CreateInventoryVeterancy("PerksSimHostOrg.LethalInjectionW", GetCostScaling(KFPRI, class'LethalInjectionWPickup'));
	}
	if ( KFPRI.ClientVeteranSkillLevel == 11 )
	{
		KFHumanPawn(P).CreateInventoryVeterancy("PerksSimHostOrg.MP7M2W", GetCostScaling(KFPRI, class'MP7M2WPickup'));
		KFHumanPawn(P).CreateInventoryVeterancy("PerksSimHostOrg.M56W", GetCostScaling(KFPRI, class'M56WPickup'));
		KFHumanPawn(P).CreateInventoryVeterancy("PerksSimHostOrg.M7A3MW", GetCostScaling(KFPRI, class'M7A3MWPickup'));
		KFHumanPawn(P).CreateInventoryVeterancy("PerksSimHostOrg.LethalInjectionW", GetCostScaling(KFPRI, class'LethalInjectionWPickup'));
	}
	if ( KFPRI.ClientVeteranSkillLevel >= 12 )
	{
		KFHumanPawn(P).CreateInventoryVeterancy("PerksSimHostOrg.MP7M2W", GetCostScaling(KFPRI, class'MP7M2WPickup'));
		KFHumanPawn(P).CreateInventoryVeterancy("PerksSimHostOrg.M56W", GetCostScaling(KFPRI, class'M56WPickup'));
		KFHumanPawn(P).CreateInventoryVeterancy("PerksSimHostOrg.M7A3MW", GetCostScaling(KFPRI, class'M7A3MWPickup'));
		KFHumanPawn(P).CreateInventoryVeterancy("PerksSimHostOrg.AcidGunW", GetCostScaling(KFPRI, class'AcidGunWPickup'));
	}
	if ( KFPRI.ClientVeteranSkillLevel >= 13 )
		P.ShieldStrength = 150;
}

// Уникальный навык 10-13 уровней. Взято из Командоса

static function float GetReloadSpeedModifier(KFPlayerReplicationInfo KFPRI, KFWeapon Other) // Скорость перезарядки
{
	if(M56W(Other)!=none)
	{
		if ( KFPRI.ClientVeteranSkillLevel == 10 )
		return 1.70;  // Up to 50% faster reload speed
		else if ( KFPRI.ClientVeteranSkillLevel == 11 )
		return 1.95;
		else if ( KFPRI.ClientVeteranSkillLevel >= 12 )
		return 2.30;
	}
	else
	{
		if ( KFPRI.ClientVeteranSkillLevel == 10 )
			return 1.25;  // Up to 50% faster reload speed
		else if ( KFPRI.ClientVeteranSkillLevel == 11 )
			return 1.50;
		else if ( KFPRI.ClientVeteranSkillLevel >= 12 )
			return 1.75;
	}
	return 1.00;
}

// Доп Уникальный навык 9-13 уровня. Взято из Поддержки

static function int AddCarryMaxWeight(KFPlayerReplicationInfo KFPRI) // Дополнительные блоков веса
{
	if ( KFPRI.ClientVeteranSkillLevel == 8 ) // Дополнительные 3 блоков веса, в итоге увеличение до 15 блоков
		return 3;
	if ( KFPRI.ClientVeteranSkillLevel == 9 )
		return 3;
	if ( KFPRI.ClientVeteranSkillLevel == 10 )
		return 3;
	if ( KFPRI.ClientVeteranSkillLevel == 11 )
		return 3;
	if ( KFPRI.ClientVeteranSkillLevel >= 12 )
		return 3;
	return 0;
}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Уникальный навык 13 уровня. Взято из Командоса
// Display enemy health bars
static function SpecialHUDInfo(KFPlayerReplicationInfo KFPRI, Canvas C) // Дистанция, на которой видно вражеское здоровье
{
	local KFMonster KFEnemy;
	local HUDKillingFloor HKF;
	local float MaxDistanceSquared;

	if ( KFPRI.ClientVeteranSkillLevel > 0 )
	{
		HKF = HUDKillingFloor(C.ViewPort.Actor.myHUD);
		if ( HKF == none || C.ViewPort.Actor.Pawn == none )
			return;

		switch ( KFPRI.ClientVeteranSkillLevel )
		{
			case 13:
				MaxDistanceSquared = 25600; // 20% (160 units) 4m
				break;
		}

		foreach C.ViewPort.Actor.DynamicActors(class'KFMonster',KFEnemy)
		{
			if ( KFEnemy.Health > 0 && !KFEnemy.Cloaked() && VSizeSquared(KFEnemy.Location - C.ViewPort.Actor.Pawn.Location) < MaxDistanceSquared )
				HKF.DrawHealthBar(C, KFEnemy, KFEnemy.Health, KFEnemy.HealthMax , 50.0);
		}
	}
}

static function float GetFireSpeedMod(KFPlayerReplicationInfo KFPRI, Weapon Other) // Скорость ведения огня Винчестером
{
	if (	MP7MW(Other) != none || MP5MW(Other) != none ||
			MP7M2W(Other) != none || M7A3MW(Other) != none || M7A3MMedicGun(Other) != none 
		)
	{
		if (KFPRI.ClientVeteranSkillLevel >= 11)
			return 2.0;
		return 1.0;
	}
	return 1.0;
}


///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
static function string GetCustomLevelInfo( byte Level ) // Отображение информации по перкам для 7> уровней
{
	local string S;

	switch( Level )
	{
		case 0:
		case 1:
		case 2:
		case 3:
		case 4:
		case 5:
		case 6:
		break;
		case 7:
			S = "220% faster Syringe recharge|75% more potent medical injections|75% less damage from Bloat Bile|25% faster movement speed|150% larger MP7M Medic Gun clip|75% better Body Armor|70% discount on Body Armor||70% discount on MP7M Medic Gun| Spawn with Body Armor and Medic Gun";
		break;
		case 8:
			S = "240% faster Syringe recharge|80% more potent medical injections|75% less damage from Bloat Bile|25% faster movement speed|200% larger MP7M Medic Gun clip|75% better Body Armor|70% discount on Body Armor||70% discount on MP7M Medic Gun| Spawn with Body Armor and Medic Gun|up to 18kg increased carry weight";
		break;
		case 9:
			S = "260% faster Syringe recharge|85% more potent medical injections|75% less damage from Bloat Bile|25% faster movement speed|250% larger MP7M Medic Gun clip|75% better Body Armor|70% discount on Body Armor||70% discount on MP7M Medic Gun| Spawn with Body Armor,Medic Gun|up to 18kg increased carry weight";
		break;
		case 10:
			S = "300% faster Syringe recharge|90% more potent medical injections|75% less damage from Bloat Bile|45% faster movement speed|300% larger MP7M Medic Gun clip|80% better Body Armor|70% discount on Body Armor||70% discount on MP7M Medic Gun| Spawn with Body Armor, Medic Gun, M7A3 Medic Gun|25% faster reload speed|up to 18kg increased carry weight";
		break;
		case 11:
			S = "320% faster Syringe recharge|100% more potent medical injections|75% less damage from Bloat Bile|50% faster movement speed|350% larger MP7M Medic Gun clip|85% better Body Armor|70% discount on Body Armor||70% discount on MP7M Medic Gun| Spawn with Body Armor, Medic Gun, M7A3 Medic Gun, Lethal Injection, M56 Healing Gun|Four times faster M7A3 Medic Gun heal canister refilling|50% faster reload speed|up to 18kg increased carry weight";
		break;
		case 12:
			S = "340% faster Syringe recharge|120% more potent medical injections|75% less damage from Bloat Bile|55% faster movement speed|400% larger MP7M Medic Gun clip|90% better Body Armor|70% discount on Body Armor||70% discount on MP7M Medic Gun| Spawn with Body Armor, Medic Gun, M7A3 Medic Gun, FAcid Gun, M56 Healing Gun|Six times faster M7A3 Medic Gun heal canister refilling|75% faster reload speed|up to 18kg increased carry weight";
		break;
		case 13:
			S = "340% faster Syringe recharge|120% more potent medical injections|75% less damage from Bloat Bile|55% faster movement speed|400% larger MP7M Medic Gun clip|95% better Body Armor|70% discount on Body Armor||70% discount on MP7M Medic Gun| Spawn with Body Armor, Medic Gun, M7A3 Medic Gun, FAcid Gun, M56 Healing Gun|Six times faster M7A3 Medic Gun heal canister refilling|75% faster reload speed|up to 18kg increased carry weight|Can see enemy health from 4m";
		break;	
	}
	return S;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

defaultproperties
{
     OnHUDGreenIcon=Texture'SimHostOrgHUD.HUD.Perk_Medic_Green'
     OnHUDBlueIcon=Texture'SimHostOrgHUD.HUD.Perk_Medic_Blue'
     SRLevelEffects(0)="10% faster Syringe recharge|10% more potent medical injections|10% less damage from Bloat Bile|10% discount on Body Armor|85% discount on MP7M Medic Gun"
     SRLevelEffects(1)="25% faster Syringe recharge|25% more potent medical injections|25% less damage from Bloat Bile|20% larger MP7M Medic Gun clip|10% better Body Armor|20% discount on Body Armor|87% discount on MP7M Medic Gun"
     SRLevelEffects(2)="50% faster Syringe recharge|25% more potent medical injections|50% less damage from Bloat Bile|5% faster movement speed|40% larger MP7M Medic Gun clip|20% better Body Armor|30% discount on Body Armor|89% discount on MP7M Medic Gun"
     SRLevelEffects(3)="75% faster Syringe recharge|50% more potent medical injections|50% less damage from Bloat Bile|10% faster movement speed|60% larger MP7M Medic Gun clip|30% better Body Armor|40% discount on Body Armor|91% discount on MP7M Medic Gun"
     SRLevelEffects(4)="100% faster Syringe recharge|50% more potent medical injections|50% less damage from Bloat Bile|15% faster movement speed|80% larger MP7M Medic Gun clip|40% better Body Armor|50% discount on Body Armor|93% discount on MP7M Medic Gun"
     SRLevelEffects(5)="150% faster Syringe recharge|50% more potent medical injections|75% less damage from Bloat Bile|20% faster movement speed|100% larger MP7M Medic Gun clip|50% better Body Armor|60% discount on Body Armor|95% discount on MP7M Medic Gun|Spawn with Body Armor"
     SRLevelEffects(6)="200% faster Syringe recharge|75% more potent medical injections|75% less damage from Bloat Bile|25% faster movement speed|100% larger MP7M Medic Gun clip|75% better Body Armor|70% discount on Body Armor||97% discount on MP7M Medic Gun| Spawn with Body Armor and Medic Gun"
     Requirements(0)="Heal %x HP on your teammates"
     Requirements(1)="Heal %x HP on your teammates with Nades and M56"
     Requirements(2)="Calm %x FP/MP with LethalInjection and AcidGun (from 10 level)"
     PerkIndex=0
     OnHUDIcon=Texture'SimHostOrgHUD.HUD.Perk_Medic'
     OnHUDGoldIcon=Texture'SimHostOrgHUD.HUD.Perk_Medic_Gold'
     VeterancyName="Field Medic"
}
